﻿using System;

namespace Midas
{
    [Serializable]
    public class GameSchema
    {
        public Result result { get; set; }

        [Serializable]
        public partial class Result
        {
            public int status { get; set; }
            public string items_game_url { get; set; }
            public Qualities qualities { get; set; }
            public Qualitynames qualityNames { get; set; }
            public Originname[] originNames { get; set; }
            public Item[] items { get; set; }
            public Attribute1[] attributes { get; set; }
            public Item_Sets[] item_sets { get; set; }
            public Attribute_Controlled_Attached_Particles[] attribute_controlled_attached_particles { get; set; }
            public Item_Levels[] item_levels { get; set; }
            public Kill_Eater_Score_Types[] kill_eater_score_types { get; set; }
        }

        [Serializable]
        public partial class Qualities
        {
            public int normal { get; set; }
            public int genuine { get; set; }
            public int vintage { get; set; }
            public int unusual { get; set; }
            public int unique { get; set; }
            public int community { get; set; }
            public int developer { get; set; }
            public int selfmade { get; set; }
            public int customized { get; set; }
            public int strange { get; set; }
            public int completed { get; set; }
            public int haunted { get; set; }
            public int tournament { get; set; }
            public int favored { get; set; }
            public int ascendant { get; set; }
            public int autographed { get; set; }
            public int legacy { get; set; }
            public int exalted { get; set; }
            public int frozen { get; set; }
            public int corrupted { get; set; }
            public int lucky { get; set; }
        }

        [Serializable]
        public partial class Qualitynames
        {
            public string normal { get; set; }
            public string genuine { get; set; }
            public string vintage { get; set; }
            public string unusual { get; set; }
            public string unique { get; set; }
            public string community { get; set; }
            public string developer { get; set; }
            public string selfmade { get; set; }
            public string customized { get; set; }
            public string strange { get; set; }
            public string completed { get; set; }
            public string haunted { get; set; }
            public string tournament { get; set; }
            public string favored { get; set; }
            public string ascendant { get; set; }
            public string autographed { get; set; }
            public string legacy { get; set; }
            public string exalted { get; set; }
            public string frozen { get; set; }
            public string corrupted { get; set; }
            public string lucky { get; set; }
        }

        [Serializable]
        public partial class Originname
        {
            public int origin { get; set; }
            public string name { get; set; }
        }

        [Serializable]
        public partial class Item
        {
            public string name { get; set; }
            public int defindex { get; set; }
            public string item_class { get; set; }
            public string item_type_name { get; set; }
            public string item_name { get; set; }
            public bool proper_name { get; set; }
            public int item_quality { get; set; }
            public string image_inventory { get; set; }
            public int min_ilevel { get; set; }
            public int max_ilevel { get; set; }
            public string image_url { get; set; }
            public string image_url_large { get; set; }
            public Capabilities capabilities { get; set; }
            public string item_description { get; set; }
            public Attribute[] attributes { get; set; }
            public string item_set { get; set; }
            public Tool tool { get; set; }
            public Style[] styles { get; set; }
        }

        [Serializable]
        public partial class Capabilities
        {
            public bool can_craft_mark { get; set; }
            public bool can_be_restored { get; set; }
            public bool strange_parts { get; set; }
            public bool paintable_unusual { get; set; }
            public bool autograph { get; set; }
            public bool can_consume { get; set; }
            public bool is_gem { get; set; }
            public bool nameable { get; set; }
            public bool can_have_sockets { get; set; }
            public bool gems_can_be_extracted { get; set; }
            public bool usable { get; set; }
            public bool usable_gc { get; set; }
            public bool usable_out_of_game { get; set; }
            public bool decodable { get; set; }
            public bool can_increment { get; set; }
            public bool uses_essence { get; set; }
            public bool no_key_required { get; set; }
        }

        [Serializable]
        public partial class Tool
        {
            public string type { get; set; }
            public string use_string { get; set; }
            public string restriction { get; set; }
            public Usage_Capabilities usage_capabilities { get; set; }
        }

        [Serializable]
        public partial class Usage_Capabilities
        {
            public bool can_increment { get; set; }
            public bool can_consume { get; set; }
            public bool nameable { get; set; }
            public bool decodable { get; set; }
            public bool uses_essence { get; set; }
            public bool can_have_sockets { get; set; }
            public bool gems_can_be_extracted { get; set; }
        }

        [Serializable]
        public partial class Attribute
        {
            public string name { get; set; }
            public string _class { get; set; }
            public int value { get; set; }
        }

        [Serializable]
        public partial class Style
        {
            public string name { get; set; }
        }

        [Serializable]
        public partial class Attribute1
        {
            public string name { get; set; }
            public int defindex { get; set; }
            public string attribute_class { get; set; }
            public string description_format { get; set; }
            public string effect_type { get; set; }
            public bool hidden { get; set; }
            public bool stored_as_integer { get; set; }
            public string description_string { get; set; }
        }

        [Serializable]
        public partial class Item_Sets
        {
            public string item_set { get; set; }
            public string name { get; set; }
            public string store_bundle { get; set; }
            public string[] items { get; set; }
        }

        [Serializable]
        public partial class Attribute_Controlled_Attached_Particles
        {
            public string system { get; set; }
            public int id { get; set; }
            public bool attach_to_rootbone { get; set; }
            public string name { get; set; }
        }

        [Serializable]
        public partial class Item_Levels
        {
            public string name { get; set; }
            public Level[] levels { get; set; }
        }

        [Serializable]
        public partial class Level
        {
            public int level { get; set; }
            public int required_score { get; set; }
            public string name { get; set; }
        }

        [Serializable]
        public partial class Kill_Eater_Score_Types
        {
            public int type { get; set; }
            public string type_name { get; set; }
        }
    }
}